﻿/*
题目描述
某校大门外长度为l的马路上有一排树，每两棵相邻的树之间的间隔都是1米
我们可以把马路看成一个数轴，马路的一端在数轴0的位置，另一端在l的位置；
数轴上的每个整数点，即 0,1,2,...,l，都种有一棵树

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示
已知任一区域的起始点和终止点的坐标都是整数，区域之间可能有重合的部分
现在要把这些区域中的树（包括区域端点处的两棵树）移走。你的任务是计算将这些树都移走后，马路上还有多少棵树

输入格式
第一行有两个整数，分别表示马路的长度l和区域的数目m

接下来m行，每行两个整数u,v,表示一个区域的起始点和终止点的坐标

输出格式
输出一行一个整数，表示将这些树都移走后，马路上剩余的树木数量

*/

#include<stdio.h>
int main()
{
    int l, m;
    int p = 0;
    scanf("%d%d", &l, &m);
    int* tree = new int [l + 1];
    for (int i = 0;i < l + 1;i++)
    {
        tree[i] = 1;
    }
    int u, v;
    for (int i = 0;i < m;i++)
    {
        scanf_s("%d%d", &u, &v);
        for (int i = u;i <= v;i++)
        {
            tree[i] = 0;
        }
    }
    
    for (int i = 0;i < l + 1;i++)
    {
        if (tree[i] == 1)
        {
            p++;
        }
    }
    printf("%d", p);
    return 0;
}